package com.fyz.aaronfjava.common.handler;
import java.lang.annotation.*;

/**
 * @Author：AaronF
 * @Date：2024/1/31 11:16
 * @description 对接口进行身份认证 只有两个条件都满足才能放行
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ApiRole {

    /**
     * 放行等级 高于配置等级允许放行
     */
    int value() default 0;

    /**
     * 放行白名单 放行配置的身份
     * 如果为空(默认值) 则不进行判断
     */
    String[] white() default {};

    /**
     * 放行黑名单 不放行配置的身份
     * 如果为空(默认值) 则不进行判断
     */
    String[] black() default {};

    /**
     * 配置白名单或黑名单
     * true即配置白名单 此时黑名单配置不生效
     * false即配置黑名单 此时白名单不生效
     */
    boolean allow() default true;
}
